package com.ruoyi.electronicFence.service;

import java.util.List;

import com.ruoyi.electronicFence.domain.ReceiveEFData;
import com.ruoyi.electronicFence.domain.TEfAlarm;

/**
 * 电子围栏报警信息Service接口
 *
 * @author sxygsj
 * @date 2024-05-20
 */
public interface ITEfAlarmService
{
    /**
     * 查询电子围栏报警信息
     *
     * @param id 电子围栏报警信息主键
     * @return 电子围栏报警信息
     */
    public TEfAlarm selectTEfAlarmById(Long id);

    /**
     * 查询电子围栏报警信息列表
     *
     * @param tEfAlarm 电子围栏报警信息
     * @return 电子围栏报警信息集合
     */
    public List<TEfAlarm> selectTEfAlarmList(TEfAlarm tEfAlarm);

    /**
     * 查询电子围栏报警信息列表
     *
     * @param tEfAlarm 电子围栏报警信息
     * @return 电子围栏报警信息集合
     */
    public List<TEfAlarm> selectTEfAlarmList2(TEfAlarm tEfAlarm);

    /**
     * 查询电子围栏报警详情信息列表
     *
     * @param tEfAlarm 电子围栏报警信息
     * @return 电子围栏报警信息集合
     */
    public List<TEfAlarm> selectDetailsList(TEfAlarm tEfAlarm);

    /**
     * 查询电子围栏报警详情信息列表
     *
     * @param tEfAlarm 电子围栏报警信息
     * @return 电子围栏报警信息集合
     */
    public int selectDetailsListTotal(TEfAlarm tEfAlarm);
    /**
     * 新增电子围栏报警信息
     *
     * @param tEfAlarm 电子围栏报警信息
     * @return 结果
     */
    public int insertTEfAlarm(TEfAlarm tEfAlarm);

    /**
     * 修改电子围栏报警信息
     *
     * @param tEfAlarm 电子围栏报警信息
     * @return 结果
     */
    public int updateTEfAlarm(TEfAlarm tEfAlarm);

    /**
     * 批量删除电子围栏报警信息
     *
     * @param ids 需要删除的电子围栏报警信息主键集合
     * @return 结果
     */
    public int deleteTEfAlarmByIds(Long[] ids);

    /**
     * 删除电子围栏报警信息信息
     *
     * @param id 电子围栏报警信息主键
     * @return 结果
     */
    public int deleteTEfAlarmById(Long id);
    /**
     * 报警数据入库
     *
     *
     * @return 结果
     */

    public int InboundDataOftAlarm(ReceiveEFData receiveEFData);
    /**
     * 报警数据入库
     *
     *
     * @return 结果
     */
    public int InboundDataOftAlarmV2(ReceiveEFData receiveEFData);

    /**
     * 查询电子围栏报警信息列表
     *
     * @param tEfAlarm 电子围栏报警信息
     * @return 电子围栏报警信息集合
     */
    public List<TEfAlarm> completionAlarmInfo (List<TEfAlarm> tEfAlarms);
}
